﻿//using System;
//using System.Diagnostics;
//using System.Text.RegularExpressions;
//using System.Threading.Tasks;
//using System.Windows.Forms;
//using WINPE_TOOLBOX;

//public class WgetDownloader
//{
//    public event Action<string, int> ProgressUpdated;
//    public event Action<string> DownloadFinished;
//    private Process wgetProcess;
//    private string wgetPath = GlobalPaths.Tools + "wget.exe"; // 设置wget.exe的路径

//    //public async void StartDownload(string url, string saveDir, string saveName)
//    //{
//    //    // wget下载参数
//    //    string arguments = $"-O \"{System.IO.Path.Combine(saveDir, saveName)}\" \"{url}\"";

//    //    wgetProcess = new Process
//    //    {
//    //        StartInfo = new ProcessStartInfo
//    //        {
//    //            FileName = wgetPath,
//    //            Arguments = arguments,
//    //            RedirectStandardOutput = true,
//    //            UseShellExecute = false,
//    //            CreateNoWindow = true,
//    //        }
//    //    };

//    //    wgetProcess.OutputDataReceived += (sender, args) => ParseOutput(args.Data);
//    //    wgetProcess.Start();
//    //    wgetProcess.BeginOutputReadLine();
//    //    await Task.Run(() => wgetProcess.WaitForExit()); // 等待下载完成
//    //}
//    public void StartDownload(string url, string saveDir, string saveName)
//    {
//        string arguments = $"-O --progress=dot \"{System.IO.Path.Combine(saveDir, saveName)}\" \"{url}\"";
//        Process process = new Process();
//        process.StartInfo.FileName = "wget";
//        process.StartInfo.Arguments =arguments;  // 设置 wget 进度显示格式为 dot
//        process.StartInfo.RedirectStandardOutput = true;
//        process.StartInfo.RedirectStandardError = true; // 捕获标准错误流
//        process.StartInfo.UseShellExecute = false;
//        process.StartInfo.CreateNoWindow = true;

//        // 捕获错误输出（进度信息通常在这里）
//        process.ErrorDataReceived += (sender, args) =>
//        {
//            if (!string.IsNullOrEmpty(args.Data))
//            {
//                Console.WriteLine($"Error Output: {args.Data}"); // 调试输出
//                ParseOutput(args.Data);  // 调用解析方法
//            }
//        };

//        // 启动进程
//        process.Start();

//        // 开始异步读取标准错误流（wget 进度信息通常输出在这里）
//        process.BeginErrorReadLine();

//        process.WaitForExit();
//    }

//    private void ParseOutput(string data)
//    {
//        if (string.IsNullOrEmpty(data))
//        {
//            return;
//        }
//        // 匹配类似 "100%[===>] 439.56M  11.7MB/s    in 41s" 的格式
//        var match = Regex.Match(data, @"(\d+[KMG]?)\s+\.+\s+(\d+)%\s+([\d\.]+[KMG]?)/s\s+(\d+s)");


//        if (match.Success)
//        {
//            int percentage = int.Parse(match.Groups[1].Value); // 下载百分比
//            string downloadedSize = match.Groups[2].Value;     // 已下载大小
//            string speed = match.Groups[3].Value;              // 下载速度

//            // 调试输出
//            Console.WriteLine($"Parsed Output - Percentage: {percentage}%, Downloaded Size: {downloadedSize}, Speed: {speed}");

//            // 触发进度更新事件
//            ProgressUpdated?.Invoke($"{downloadedSize} ({speed})", percentage);
//        }
//        else
//        {
//            Console.WriteLine($"Output does not match: {data}");
//        }
//    }



//    public void StopDownload()
//    {
//        if (wgetProcess != null && !wgetProcess.HasExited)
//        {
//            wgetProcess.Kill();
//            wgetProcess.Dispose();
//            DownloadFinished?.Invoke("Download stopped.");
//        }
//    }
//}
